Currently, much of the utility of computer systems lies in their ability to communicate and share information with other computer systems. Information is typically passed between computer systems via computer networks. Computer networks are groups of computers interconnected by wires or wireless mechanisms such as infrared, radio, and other technologies. The Internet is a global network of many smaller computer networks connected to one another. There is no controlling central network, but rather several high level networks that are connected through network access points. A network access point is a computer hardware or software device (commonly a network router) that serves as a kind of translator between two different networks.
Web services, generally, refers to application-to-application communication over the Internet via programmatic interfaces. For example, a local application (e.g., Microsoft® Money) on a client computer may communicate with a server application on a remote computer to obtain stock ticker information. The two applications may communicate the requested ticker symbol and the corresponding results via one or more messages transmitted over the Internet, without opening or using a traditional Internet browser such as Internet Explorer®.
The advent of XML (eXtensible Markup Language) and other protocol-neutral communications mechanisms has made it easier for web services to be offered between computers residing on different networks, written in different languages, and/or using different operating systems, yet still communicate effectively in an interoperable manner. However, these protocol neutral mechanisms do not provide an extensible mechanism to describe and update local configuration determining the appropriate message path for a message intended for a specific web service.
Routing protocols such as the Routing Information Protocol (RIP) and Interior Gateway Routing Protocol (IGRP) provide router table update mechanisms. However, these protocols are not compatible for use with web services, e.g., using Simple Object Access Protocol (SOAP). In addition, RIP and IGRP are distance-based routing protocols that always route data based on a calculated shortest distance. RIP and IGRP are concerned with how to route a message at the IP layer, not how to update routing information in a router for use by an application at the application layer. Protocols such as BGP and EGP also are primarily directed to how to route messages, not how to update information in routing tables.
Another known routing protocol, Open Shortest Path First (OSPF), is a link-state routing protocol, which bases changes on the status and speeds of the physical links of the networked routers, and propagates the changes to every router on the network. When first initialized (e.g., powered on), an OSPF router uses a protocol termed a “hello protocol” to discover neighbors to which the router is connected. The router then exchanges link-state information with these routers. Using the link-state information, each router creates a database that includes of every interface, its corresponding neighbor and a metric representing the speed of that interface. Each router then passes this information along to all neighboring routers. The process is repeated in turn until every router in the network receives link state information for every other router in the network. Each router builds a tree indicating a path to every node on the network, using itself as the root. The tree is then used to create a routing table, which the router then uses to route messages in the network. OSPF, however, does not provide for updating routing tables with routing information other than that corresponding to a directly linked interface or router, nor does it provide for updating with information other than link-state information. Other limitations as with RIP and IGRP, described above, also apply to OSPF.
Thus, it would be an advancement in the art to provide a mechanism for describing exchange and deployment of message path configuration information in an extensible manner. It would be a further advancement in the art to allow message path configuration information to refer to multiple resources simultaneously. It would be a further advancement in the art to provide a message path configuration information mechanism that allows routing metadata statements to be refined by subsequent message path configuration information statements. It would be a further advancement in the art to provide a routing table update protocol that is compatible with platform-independent web services.